Generally described, computing devices and communication networks can be utilized to exchange information. In a common application, a device can request content from another device via the communication network. For example, a user at a personal computing device can utilize a software browser application to request a Web page or Web application from a server device via the Internet. For another example, a user of a content providing service can utilize a display device (e.g., television, computer, mobile device, smartphone, tablet) to request content (e.g., an audio presentation, video presentation, audiovisual presentation, movie, television show, video, podcast) to be downloaded or streamed from a server device via the Internet to the display device. In such embodiments, the user computing device or display device can be referred to as a client device and the server device can be referred to as a content provider.
Content providers are generally motivated to provide requested content to client devices often with consideration of cost, speed, or efficiency associated with the transmission of the content data. For larger scale implementations, a content provider may receive content requests from a high volume of client devices which can place a strain on the content provider's computing resources. Additionally, the content requested by the client devices may have a number of components, which can further place additional strain on the content provider's computing resources.
With reference to an illustrative example, content to be downloaded or streamed to the client device to be presented to the user may be identified by one or more embedded resource identifiers, such as uniform resource locators (“URLs”). In turn, software on the client devices typically processes embedded resource identifiers to generate requests for the content. Often, the resource identifiers reference a computing device associated with the content provider such that the client device would transmit the request for the content to the referenced content provider computing device. Accordingly, in order to satisfy a content request, the content provider would provide client devices data associated with the content.
Some content providers attempt to facilitate the delivery of requested content data through the utilization of a content delivery network (“CDN”) service provider. A CDN server provider typically maintains a number of computing devices in a communication network that can maintain content data from various content providers. In turn, content providers can instruct, or otherwise suggest to, client devices to request some, or all, of the content provider's content from the CDN service provider's computing devices.
With reference to the previous illustrative example, the content provider can leverage a CDN service provider with the modification or substitution of resource identifiers associated with the embedded resources. Specifically, the resource identifiers can reference a computing device associated with the CDN service provider such that the client device would transmit the request for corresponding resources to the referenced CDN service provider computing device. The CDN service provider may determine a source endpoint (e.g., a server) within the CDN for transferring requested data to the client device. Typically, this determination is made prior to the initiation of data transfer and the source of data transfer does not change during the data transfer process.